<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // findIndex
      //   function findIndex(array, predicate) {
      //     for (let i = 0; i < array.length; i++) {
      //       if (predicate(array[i], i, array)) {
      //         return i;
      //       }
      //     }
      //     return -1;
      //   }
      //   const arr = [1, 2, 3, 4];
      //   const index = findIndex(arr, (item) => item === 3); // 返回 2
      //   console.log(index);

      //   find
      //   function find(array, predicate) {
      //     for (let i = 0; i < array.length; i++) {
      //       if (predicate(array[i], i, array)) {
      //         return array[i];
      //       }
      //     }
      //     return undefined;
      //   }
      //   const arr = [1, 2, 3, 4];
      //   const result = find(arr, (item) => item > 2); // 返回 3
      //   console.log(result);

      //   push
      //   function push(array, ...elements) {
      //     let initialLength = array.length;
      //     for (let i = 0; i < elements.length; i++) {
      //       array[initialLength + i] = elements[i];
      //     }
      //     return array.length;
      //   }
      //   const arr = [1, 2, 3];
      //   const newLength = push(arr, 4, 5); // 返回 5
      //   console.log(arr); // [1, 2, 3, 4, 5]
      //   console.log(newLength); // 5

      //   unshift
      //   function unshift(array, ...elements) {
      //     // 从后往前插入新元素，避免覆盖原有元素
      //     for (let i = array.length - 1; i >= 0; i--) {
      //       array[i + elements.length] = array[i];
      //     }

      //     // 插入新元素
      //     for (let i = 0; i < elements.length; i++) {
      //       array[i] = elements[i];
      //     }

      //     return array.length;
      //   }

      //   shift
      //   function shift(array) {
      //     if (array.length === 0) return undefined;

      //     // 保存第一个元素
      //     const firstElement = array[0];

      //     // 将数组中的所有元素向前移动一个位置
      //     for (let i = 1; i < array.length; i++) {
      //       array[i - 1] = array[i];
      //     }

      //     // 删除最后一个元素
      //     array.length -= 1;

      //     // 返回移除的第一个元素
      //     return firstElement;
      //   }

      //   const arr = [1, 2, 3, 4];
      //   const removedElement = shift(arr); // 返回 1
      //   console.log(arr); // [2, 3, 4]
      //   console.log(removedElement); // 1
    </script>
  </body>
</html>
